// 存储键值对相关indexDB库表
import { openDB } from 'idb';

// 创建或打开数据库
const dbPromise = openDB('kv-db', 1, {
    upgrade(db) {
        // 创建一个名为 'kv-store' 的对象存储，keyPath 设为 null，使其成为简单的 key-value 结构
        db.createObjectStore('kv-store');
    },
});

// 存储键值对
export async function saveValue(key, value) {
    const db = await dbPromise;
    const tx = db.transaction('kv-store', 'readwrite');
    const store = tx.objectStore('kv-store');
    // 键值对存储
    await store.put(value, key);
    await tx.done;
    console.log(`value 已存储在 key: ${key}`);
}

// 根据key读取value
// indexDB/dbKV.js
export async function getValueBykey(key) {
  const db = await dbPromise;
    const tx = db.transaction('kv-store', 'readonly');
    const store = tx.objectStore('kv-store');
    // 获取指定 key 的值
    const value = await store.get(key);
    return value;
}

// 根据key删除token
export async function deleteToken(key) {
    const db = await dbPromise;
    const tx = db.transaction('kv-store', 'readwrite');
    const store = tx.objectStore('kv-store');
    // 删除指定 key 的值
    await store.delete(key);
    await tx.done;
    console.log(`Token 已删除, key: ${key}`);
}

// 获取当前登录用户ID
export async function getLoginUserId() {
  try {
    const userInfo = await getValueBykey("userInfo");
    if (!userInfo) {
      console.warn('用户未登录');
      return null;
    }
    return userInfo.userId;
  } catch (error) {
    console.error('获取用户ID失败:', error);
    return null;
  }
}

// 获取当前登录用户名
export async function getLoginUserName() {
  try {
    const userInfo = await getValueBykey("userInfo");
    if (!userInfo) {
      console.warn('用户未登录');
      return '未登录用户';
    }
    return userInfo.name;
  } catch (error) {
    console.error('获取用户名失败:', error);
    return '未登录用户';
  }
}


// 在线图片列表
let pictureList = [
]
for (let i = 1; i <= 78; i++) {
    // 对于1-9的数字，在前面补0
    let numStr = i < 10 ? `0${i}` : `${i}`;
    pictureList.push(`/avatar/${numStr}.jpg`);
}

// 存储
saveValue("myPictures", pictureList)



